1. Field of the Invention (Technical Field)
The present invention relates to computer database systems and more particularly to a data entry user interface used to populate a relational database with information.
2. Background Art
A glossary is presented in the GLOSSARY OF TERMS section below to facilitate a better understanding of the terms relevant to the present invention. Such terms are denoted by the use of italics.
Relational database management systems are well known in the prior art. A key characteristic of such systems is that data is organized and stored in tables in such a manner that various tables may be related to one another for the purpose of representing real world problems in the form of an organized data structure.
Relational databases are widely accepted in the modern business environment as a valuable tool to store information relating to an organization's business activities. But while relational database management systems provide an attractive way to organize and store data, they do not provide a convenient method to accept input from an end user for the purpose of populating the database with information.
A variety of commercial computer systems are available to provide user interfaces to relational databases. Such systems are typically developed to provide solutions to common business problems such as accounting systems for small businesses and inventory management systems for manufacturers.
However, a myriad of business problems cannot be solved with existing commercial computer systems. Many business problems are specific to a particular organization requiring a custom database structure to properly model each problem. It follows then that these custom database structures require custom user interfaces in order to populate the database with information.
Creating custom user interfaces for relational databases is a time consuming and costly process. At a high level, the process generally includes the following stages:                1. Analyze the business problem to define a set of requirements.        2. Design a data structure and a set of business rules to provide for the collection and storage of information relevant to the set of requirements defined in the previous stage.        3. Design a user interface within which users may navigate through the relational database to store and retrieve information subject to the set of business rules defined in the previous stage.        4. Create the user interface by writing computer code.        5. Test the user interface. Correct programming and design errors.        6. Implement and deploy the database and user interface.        7. Repeat stages 1 through 6 as new requirements evolve over time.        
For small scale databases with approximately 25 or fewer tables, this process often requires a couple hundred hours of programming effort in addition to numerous resources necessary to gather requirements, test and deploy the system. For larger databases, the cost increases nearly in direct proportion with the size of the database. Needless to say, the cost of developing custom user interfaces is extremely expensive often prohibiting the development of such systems for many organizations.
Most data entry user interfaces are form-based in which a graphical representation of a form is presented on a video display. The form, which relates to the data being entered, contains a series of data entry controls that are used to collect data from the end user. These data entry controls typically attempt to provide the user with an intuitive data entry experience. For example, as illustrated in FIG. 1, when entering a Customer Order into the database, an edit box with a corresponding button might represent the Order Date. The user can enter a date into the edit box by: (1) using the keyboard or (2) clicking the button to obtain a calendar from which a date can then be selected.
A key problem arises with the form-based user interface depicted above in that if a new data element (i.e., field) is added to a table in the database, a new data entry control must be added to the table's corresponding form in the user interface. This modification requires further programming effort, additional testing, and a recompilation and redeployment of the user interface. So not only is the user interface extremely expensive to develop in the first place, it is also very costly to maintain over the lifetime of the database.
In order to dramatically reduce the cost and turnaround time of developing and maintaining data entry user interfaces for relational databases, it is desirable to generate the user interface, and more particularly the data entry forms, dynamically at run-time without the necessity of writing computer code. The user interface should also provide a mechanism by which users can conveniently navigate through the database for the purposes of entering and maintaining data. Finally, the user interface should be extensible so that a system administrator can modify the interface to provide users with a better data entry experience and to insure the integrity of data stored in the underlying database.